//
//  LKDropPickerView.h
//  LKDropPickerView-Demo
//
//  Created by LIUKUN-PC on 17/5/3.
//  Copyright © 2017年 liukun. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface LKDropPickerView : UIView

/** 选项标题数组 */
@property (nonatomic, strong) NSArray<NSString *> *titles;

/** 选项图标数组 */
@property (nonatomic, strong) NSArray<NSString *> *imageNames;

/** y向下偏移量, 默认为64 */
@property (nonatomic, assign) CGFloat yOffset;

/** 每一行显示项的最大数量, 默认为4 */
@property (nonatomic, assign) NSInteger maxCountAtSingleLine;

/** 图标边长, 默认40,  */
@property (nonatomic, assign) CGFloat imageLength;

/** 视图是否在显示 */
@property (nonatomic, assign, readonly) BOOL display;

/** 选择的index */
@property (nonatomic, assign, readonly) NSInteger selectedIndex;

/** 点击回调 */
@property (nonatomic, copy) void(^didClickedItemBlock)(NSInteger index);

/** 视图消失过程中的回调，用于改变视图，带动画 */
@property (nonatomic, copy) void(^dismissBlock)();

/** 视图显示过程中的回调，用于改变视图，带动画 */
@property (nonatomic, copy) void(^showBlock)();


/** 显示，最后调用 */
- (void)show;
/** 消失, 参数为完成回调 */
- (void)dismiss:(void(^)())completion;


@end


/**
 Item
 */
@interface LKDropItem : UIView

/** 对齐方式 */
@property (nonatomic, assign) NSTextAlignment alignment;

/** 最大宽度，默认为 SCREEN_WIDTH - 130 */
@property (nonatomic, assign) CGFloat maxWidth;

/** 自适应的宽度，用于设置俯视图的Frame */
- (CGFloat)fitWidth;

/** 点击回调 */
@property (nonatomic, copy) void(^tappedBlock)();

/** 标题，视图已经创建， 用于属性设置 */
@property (nonatomic, strong, readonly) UILabel *titleLabel;

/** 箭头图片，视图已经创建， 用于属性设置 */
@property (nonatomic, strong, readonly) UIImageView *imageView;


/**
 初始化方法

 @param frame Frame
 @param title 标题

 @return 实例对象
 */
- (instancetype)initWithFrame:(CGRect)frame title:(NSString *)title;



@end


@interface LKDropPickerItemView : UIView


/**
 初始化方法

 @param frame               frame
 @param titles              标题数组
 @param imageNames          图标名数组
 @param didClickedItemBlock 点击回调，需要在这个方法里设置，否则不会视图的变化过程

 @return 实例对象
 */
- (instancetype)initWithframe:(CGRect)frame titles:(NSArray<NSString *> *)titles imageNames:(NSArray<NSString *> *)imageNames didClickedItemBlock:(void(^)(NSInteger index))didClickedItemBlock;


/** pickerView, 视图已经创建， 用于其他属性设置 */
@property (nonatomic, strong, readonly) LKDropPickerView *dropPickerView;
/** item, 视图已经创建， 用于其他属性设置 */
@property (nonatomic, strong, readonly) LKDropItem *item;


@end

